package com.alibaba.alink.pipeline.dataproc.vector;

import org.apache.flink.ml.api.misc.param.Params;

import com.alibaba.alink.common.annotation.InputPorts;
import com.alibaba.alink.common.annotation.NameCn;
import com.alibaba.alink.common.annotation.NameEn;
import com.alibaba.alink.common.annotation.OutputPorts;
import com.alibaba.alink.common.annotation.ParamSelectColumnSpec;
import com.alibaba.alink.common.annotation.PortSpec;
import com.alibaba.alink.common.annotation.PortType;
import com.alibaba.alink.common.annotation.TypeCollections;
import com.alibaba.alink.operator.common.dataproc.vector.VectorAssemblerMapper;
import com.alibaba.alink.params.dataproc.vector.VectorAssemblerParams;
import com.alibaba.alink.pipeline.MapTransformer;

/**
 * VectorAssembler is a transformer that combines a given list of columns(vector or numerical column) into a single
 * vector column. It is useful for combining features generated by different feature generators into a
 * single feature vector. VectorAssembler accepts the following input column types: all numeric types, and vector type.
 * In each row, the values of the input columns will be concatenated into a vector in the specified order.
 *
 * this operator cam transform batch data.
 */
@NameCn("向量聚合")
@NameEn("Vector Assembler")
public class VectorAssembler extends MapTransformer <VectorAssembler>
	implements VectorAssemblerParams <VectorAssembler> {

	private static final long serialVersionUID = 8967365670512585248L;

	public VectorAssembler() {
		this(null);
	}

	public VectorAssembler(Params params) {
		super(VectorAssemblerMapper::new, params);
	}
}
